iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
自我挑戰組

Django 初學入門 - 從 ROR 的角度來學習 Django系列 第 3

DAY3 - Django 環境建置 - pyenv 和 virtualenv 設定

  • 分享至 

  • xImage
  •  

在開始建立 Django 應用程式之前,我們先來安裝環境~
本篇會介紹 pyenvvirtualenv 的作用,還有一些安裝環境的細節,讓之後實作 Django 可以更順利!

pyenv 是什麼

這個東西就類似於 Ruby 的 RVM,只要下載下來後,就可以利用這個控制電腦 python 的版本

安裝前建議先把電腦以前有裝過的 python 刪掉,像我之前電腦有安裝 Anaconda,這個東西是幫助新手快速上手 Python用的,所以他們幫你安裝 python 版本,我一開始沒刪掉 Anaconda,結果導致電腦的 Python 版本一直被 Anaconda 控制,所以為了簡單一點,還是把本機原本的 Python 刪乾淨,全部由 pyenv 控制比較單純

參考 pyenv 設定連結: https://ephrain.net/python-%E4%BD%BF%E7%94%A8-pyenv-%E5%9C%A8-mac-%E4%B8%8A%E5%AE%89%E8%A3%9D%E5%B7%B2%E7%B6%93%E6%B6%88%E5%A4%B1%E7%9A%84-python-2-%E7%89%88%E6%9C%AC/

ps. 由於我的電腦是用 Mac,所以下面的指令都是針對 Mac,使用 Windows 朋友不太好意思~

安裝 pyenv

首先在 mac 上安裝 pyenv

$ brew install pyenv

ps. 沒有下載 brew 的朋友記得先去下載喔

pyenv install -l

看看有什麼版本的 Python 可以安裝

$ pyenv install -l 

Ps. 這個指令會印出目前所有可以安裝的 Python 版本

pyenv install 3.11.4

安裝指定版本

$ pyenv install 3.11.4

Ps. 我們來安裝 3.11.4Python

pyenv versions

查看目前本機安裝的版本

$ pyenv versions

------
  system
* 3.11.4 (set by /Users/yee0526/.pyenv/version)

這樣成功安裝好 Python 版本,如果之後想要安裝別的版本,照著前面的流程做,就可以了

virtualenv 虛擬環境是什麼

虛擬環境就是讓你電腦在執行 Python 應用程式的時候,可以獨立擁有不同的版本和套件,這樣聽起來有點不懂嗎?沒關係,我們等等實際跑一次給你看就知道了,我們先把環境安裝好

確認使否有 virtualenv 虛擬環境

$ virtualenv --version

------
16.7.10

如果今天電腦有安裝的話,就會顯示在終端機上,如果沒有顯示,就代表沒有安裝,因此我們來安裝一下

安裝 virtualenv 虛擬環境

下面的指令可以安裝虛擬環境

$ pip install virtualenv

如果不確定有沒有裝好,可以再執行一次版本確認,這樣應該會正常印出來

$ virtualenv --version

------
16.7.10

創一個虛擬環境

  1. 首先創建資料夾
$ mkdir djangoBoy
  1. 新增虛擬環境
$ cd djangoBoy
$ python3 -m venv virtualenv

Ps. 記得要 cd 進入 剛剛新增的資料夾裡面,再執行 python3 -m venv virtualenv 喔!

  1. 啟動虛擬環境
$ source virtualenv/bin/activate

這邊大家要注意一下,如果成功啟動虛擬環境,會在 shell 那邊顯示,由於我的 shell 是 ZSH,跟 bash 不太一樣,如果你的也是 ZSH,要特別記得 shell 修改那邊要加上虛擬環境的設定喔,我一開始學的時候,還以為壞掉了,一直進不去虛擬環境,結果最後面發現已經有進虛擬環境了,只是沒有顯示而已。

如果成功進入虛擬環境,會如下圖:
https://ithelp.ithome.com.tw/upload/images/20230914/20162365RdR0Pldtec.png

ZSH 設定

這邊附上我的 ZSH 的設定:

  • 上面那一行是終端機左側顯示
  • 下面那一行是終端機右側顯示
<!-- .zshrc -->
# Command Line message
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir dir_writable vcs newline)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(command_execution_time status time virtualenv)

Ps. 到 zsh 的文件修改樣式

  1. 確認虛擬環境跟本機環境的差異

再來我們來確認一下,有虛擬環境後,沒使用和有使用真的有差別嗎!?實際執行下面的指令就很清楚了~

$ pip list

------
Package    Version
---------- -------
pip        23.1.2
setuptools 65.5.0

Ps. pip list 是一個用於查看已安裝 Python 套件的命令,印出在虛擬環境中。而在虛擬環境中執行,會發現目前只有這兩個 Package

  1. 離開虛擬環境
$ deactivate
  1. 再次輸入 pip list
$ pip list

------
Package            Version
------------------ --------
appnope            0.1.3
asgiref            3.7.2
asttokens          2.2.1
backcall           0.2.0
...省略

由上面的狀況可以知道,我們進入虛擬環境中,可以發現環境裝的套件只有少數幾個,而離開虛擬環境後,本機之前安裝過的套件都跑出來了,由此可證明兩個環境是隔離開的,之後你在虛擬環境安裝的套件,都會安裝在虛擬環境裡面,這樣的好處是不會讓污染你本機的環境,而且如果之後還要新增其他版本的 Django 應用程式,也不用擔心套件版本不同互相影響。

總結

今天學到哪些東西呢?

  1. 使用 pyenv 的好處
  2. 如何安裝、使用 pyenv
  3. 使用 virtualenv 的好處
  4. 如何安裝、使用 virtualenv
  5. 如何分辨有開虛擬環境和沒開虛擬環境的差異

最後附上 Github: https://github.com/eagle0526/Django-store
從今天開始,每天的程式修改我都會更新上去,想要的人直接下載下來就好


上一篇
DAY2 - MVC VS MVT
下一篇
DAY4 - 快速生成 Django 基礎應用程式架構
系列文
Django 初學入門 - 從 ROR 的角度來學習 Django30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言